package com.ruoyi.user.domain;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 用户侧订单实体（与 orders 表映射）
 */
public class UserOrders {
    private Long orderId;
    private String orderNo;
    private Long customerId; // 与当前库保持一致，采用 customer_id
    private Long merchantId;
    private String merchantName;
    private Long regionId;
    private String pickupCode;
    private Integer status; // 0-待接单，1-已接单，2-制作中，3-待取，4-完成，5-取消

    private BigDecimal totalAmount;
    private BigDecimal discountAmount;
    private BigDecimal regionSubsidy;
    private BigDecimal finalAmount;

    private Integer paymentMethod; // 1-微信，2-余额
    private Integer paymentStatus; // 0-未付，1-已付，2-退款

    private String addressSnapshot;
    private String remark;
    private Integer estimatedReadyMin;
    private Integer tablewareCount;

    private String addressContactName;
    private String addressContactPhone;
    private String addressProvince;
    private String addressCity;
    private String addressDistrict;
    private String addressStreet;
    private String addressBuilding;
    private BigDecimal addressLatitude;
    private BigDecimal addressLongitude;

    private Date paidAt;
    private Date finishedAt;
    private Date canceledAt;

    private Date createdAt;
    private Date updatedAt;
    private Date deletedAt;

    public Long getOrderId() { return orderId; }
    public void setOrderId(Long orderId) { this.orderId = orderId; }

    public String getOrderNo() { return orderNo; }
    public void setOrderNo(String orderNo) { this.orderNo = orderNo; }

    public Long getCustomerId() { return customerId; }
    public void setCustomerId(Long customerId) { this.customerId = customerId; }

    public Long getMerchantId() { return merchantId; }
    public void setMerchantId(Long merchantId) { this.merchantId = merchantId; }

    public String getMerchantName() {
        return merchantName;
    }

    public void setMerchantName(String merchantName) {
        this.merchantName = merchantName;
    }

    public Long getRegionId() { return regionId; }
    public void setRegionId(Long regionId) { this.regionId = regionId; }

    public String getPickupCode() { return pickupCode; }
    public void setPickupCode(String pickupCode) { this.pickupCode = pickupCode; }

    public Integer getStatus() { return status; }
    public void setStatus(Integer status) { this.status = status; }

    public BigDecimal getTotalAmount() { return totalAmount; }
    public void setTotalAmount(BigDecimal totalAmount) { this.totalAmount = totalAmount; }

    public BigDecimal getDiscountAmount() { return discountAmount; }
    public void setDiscountAmount(BigDecimal discountAmount) { this.discountAmount = discountAmount; }

    public BigDecimal getRegionSubsidy() { return regionSubsidy; }
    public void setRegionSubsidy(BigDecimal regionSubsidy) { this.regionSubsidy = regionSubsidy; }

    public BigDecimal getFinalAmount() { return finalAmount; }
    public void setFinalAmount(BigDecimal finalAmount) { this.finalAmount = finalAmount; }

    public Integer getPaymentMethod() { return paymentMethod; }
    public void setPaymentMethod(Integer paymentMethod) { this.paymentMethod = paymentMethod; }

    public Integer getPaymentStatus() { return paymentStatus; }
    public void setPaymentStatus(Integer paymentStatus) { this.paymentStatus = paymentStatus; }

    public String getAddressSnapshot() { return addressSnapshot; }
    public void setAddressSnapshot(String addressSnapshot) { this.addressSnapshot = addressSnapshot; }

    public String getRemark() { return remark; }
    public void setRemark(String remark) { this.remark = remark; }

    public Integer getEstimatedReadyMin() { return estimatedReadyMin; }
    public void setEstimatedReadyMin(Integer estimatedReadyMin) { this.estimatedReadyMin = estimatedReadyMin; }

    public Integer getTablewareCount() { return tablewareCount; }
    public void setTablewareCount(Integer tablewareCount) { this.tablewareCount = tablewareCount; }

    public Date getPaidAt() { return paidAt; }
    public void setPaidAt(Date paidAt) { this.paidAt = paidAt; }

    public Date getFinishedAt() { return finishedAt; }
    public void setFinishedAt(Date finishedAt) { this.finishedAt = finishedAt; }

    public Date getCanceledAt() { return canceledAt; }
    public void setCanceledAt(Date canceledAt) { this.canceledAt = canceledAt; }

    public Date getCreatedAt() { return createdAt; }
    public void setCreatedAt(Date createdAt) { this.createdAt = createdAt; }

    public Date getUpdatedAt() { return updatedAt; }
    public void setUpdatedAt(Date updatedAt) { this.updatedAt = updatedAt; }

    public Date getDeletedAt() { return deletedAt; }
    public void setDeletedAt(Date deletedAt) { this.deletedAt = deletedAt; }

    public String getAddressContactName() { return addressContactName; }
    public void setAddressContactName(String addressContactName) { this.addressContactName = addressContactName; }
    public String getAddressContactPhone() { return addressContactPhone; }
    public void setAddressContactPhone(String addressContactPhone) { this.addressContactPhone = addressContactPhone; }
    public String getAddressProvince() { return addressProvince; }
    public void setAddressProvince(String addressProvince) { this.addressProvince = addressProvince; }
    public String getAddressCity() { return addressCity; }
    public void setAddressCity(String addressCity) { this.addressCity = addressCity; }
    public String getAddressDistrict() { return addressDistrict; }
    public void setAddressDistrict(String addressDistrict) { this.addressDistrict = addressDistrict; }
    public String getAddressStreet() { return addressStreet; }
    public void setAddressStreet(String addressStreet) { this.addressStreet = addressStreet; }
    public String getAddressBuilding() { return addressBuilding; }
    public void setAddressBuilding(String addressBuilding) { this.addressBuilding = addressBuilding; }
    public BigDecimal getAddressLatitude() { return addressLatitude; }
    public void setAddressLatitude(BigDecimal addressLatitude) { this.addressLatitude = addressLatitude; }
    public BigDecimal getAddressLongitude() { return addressLongitude; }
    public void setAddressLongitude(BigDecimal addressLongitude) { this.addressLongitude = addressLongitude; }
}
